YouTube 相同議題趣味影片連結:
【程式/知識變現 03】- Python王者降臨 第一式:聖光乍現-作畫天份
https://youtu.be/2Z3qBX-jDbQ
歡迎連結參觀觀賞,若有興趣也請訂閱持續關注我
緊接著來聊一下黃金等級的程式設計師;
這些人都怎麼秀作品的呢?
想當然而,跟頂尖高手摸得著邊的事務,他們都能稍有涉略,
在設計的作品上總想與高手切磋以分高下,
因此,就連程式設計的學習旅程上也不會只停留在基礎程式設計,
總能在基礎程式中找出應用呈現高手的樣子。
想從Python的程式設計作品看到這些黃金高手的影子,
閉眼想像,應該會是下面的樣子:
下面接著說明Turtle模組使用方法概述,讓各位對於Python的作畫模組有點概念,
相關說明如下:
(一) 載入turtle模組
Turtle模組在Python程式語言中為內建模組,不須安裝可直接載入使用。
常見的程式寫法:import turtle 或是 from turtle import *
(二) 設定畫布環境
Turtle繪圖的任何繪圖動作都必須在畫布(繪圖區域)上操作,因此需要先初始化畫布物件,再依需求配置畫布環境設定。此指令可指定screen為畫布物件方法。
(非必須)常見的程式寫法:screen = turtle.Screen()
注意事項:
turtle.Screen()的"S"必須是大寫字母
(三) 控制繪圖程式(移動、方向、顏色等)
當畫布環境設定完成,就能開始使用函式功能來控制turtle動作。此語法可控制turtle往前20個像素(pixel)。
常見的程式寫法: forward(20)
設定畫筆顏色
常見的程式寫法:
myTurtle.color('red') # 紅色
設定畫一個封閉幾何圖形的外框及底色,例如藍框紅底、半徑為 30 的圓:
常見的程式寫法:
color('blue', 'red')
begin_fill()
circle(30)
end_fill()
設定畫筆尺寸
常見的程式寫法:
pensize(2) # 2 像素寬
提筆與落筆
常見的程式寫法:
penup() # 提筆
pendown() # 落筆
走到某個位置
常見的程式寫法:
goto(90, 80) # 走到 (90, 80) 位置
(四) 結束繪圖程式
當程式執行完成,畫布就會"直接"關閉,若想要確認程式結果和繪圖內容是否正確時!該怎麼辦?此語法可控制畫布為持續開啟狀態,直到手動關閉畫布程式才會結束。
(非必須) 常見的程式寫法:screen.mainloop()
Turtle 繪圖函數速查資訊,參考如下:
Overview of available Turtle and Screen methods
英文版: https://docs.python.org/3/library/turtle.html
中文版: https://docs.python.org/zh-tw/3/library/turtle.html
今天一樣不能免俗地分享一下程式碼,讓大家可以小秀一下黃金戰士鋼鐵人的英姿。
import turtle
# Top Part
piece1=[[(-40, 120), (-70, 260), (-130, 230),
(-170, 200), (-170, 100), (-160, 40), (-170, 10),
(-150, -10), (-140, 10), (-40, -20), (0, -20)],[(0, -20),
(40, -20), (140, 10), (150, -10), (170, 10), (160, 40),
(170, 100), (170, 200), (130, 230), (70, 260), (40, 120),
(0, 120)]]
# Middle Part
piece2=[[(-40, -30), (-50, -40), (-100, -46), (-130, -40),
(-176, 0), (-186, -30), (-186, -40), (-120, -170),
(-110, -210), (-80, -230), (-64, -210), (0, -210)],
[(0, -210), (64, -210), (80, -230), (110, -210), (120, -170), (186, -40), (186, -30), (176, 0), (130, -40), (100, -46), (50, -40), (40, -30), (0, -30)]]
#Bottom Part
piece3=[[(-60, -220), (-80, -240), (-110, -220),
(-120, -250),(-90, -280), (-60, -260), (-30, -260), (-20, -250), (0, -250)],[(0, -250), (20, -250), (30, -260), (60, -260),
(90, -280), (120, -250),(110, -220), (80, -240), (60, -220), (0, -220)]]
turtle.hideturtle()
turtle.bgcolor('#ba161e') #Dark Red
turtle.setup(500,600)
turtle.title("I AM IRONMAN")
piece1Goto=(0,120)
piece2Goto=(0,-30)
piece3Goto=(0,-220)
turtle.speed(2)
def draw_piece(piece,pieceGoto):
turtle.penup()
turtle.goto(pieceGoto)
turtle.pendown()
turtle.color('#fab104') #Light Yellow
turtle.begin_fill()
for i in range(len(piece[0])):
x,y=piece[0][i]
turtle.goto(x,y)
for i in range(len(piece[1])):
x,y=piece[1][i]
turtle.goto(x,y)
turtle.end_fill()
draw_piece(piece1,piece1Goto)
draw_piece(piece2,piece2Goto)
draw_piece(piece3,piece3Goto)
turtle.hideturtle()
turtle.done()
明天我們再來看看更優秀的人們,怎麼用Python詮釋畫作。